﻿#language: it-IT
# Autore: Mattia Barrasso

Funzionalità: AggiungiOspite

Scenario: aggiunta di un ospite con nome non esistente. Successo.
	Dato l'ospite "Mario Rossi" non esiste
	E ho inserito i valori
         | Attributi | Valori      |
         | Nome      | Mario Rossi |
	Quando salvo
	Allora l'operazione ha successo
	E esiste l'ospite "Mario Rossi"

Scenario: aggiunta di un ospite con nome esistente. Fallimento.
	Dato l'ospite "Mario Rossi" esiste
	E ho inserito i valori
         | Attributi | Valori      |
         | Nome      | Mario Rossi |
	Quando salvo
	Allora l'operazione non ha successo
	E esiste l'ospite "Mario Rossi"

Scenario: aggiunta di un ospite con nome simile. Fallimento.
	Dato l'ospite "mario Rossi" esiste
	E ho inserito i valori
         | Attributi | Valori      |
         | Nome      | Mario Rossi |
	Quando salvo
	Allora l'operazione non ha successo
	E esiste l'ospite "Mario Rossi"

Scenario: aggiunta di un ospite senza nome e nota. Fallimento.
	Dato ho inserito i valori
         | Attributi | Valori   |
         | Nota      | Mister X |
	Quando salvo
	Allora l'operazione non ha successo

Scenario: aggiunta di un ospite con nome non esistente e nota. Successo.
	Dato l'ospite "Mario Rossi" non esiste
	E ho inserito i valori
         | Attributi | Valori                  |
         | Nome      | Mario Rossi             |
         | Nota      | Da avvertire per tempo! |
	Quando salvo
	Allora l'operazione ha successo
	E esiste l'ospite "Mario Rossi"

Scenario: aggiunta di un ospite con preferenze, nessun altro legame presente. Successo.
	Dato l'ospite "Mario Rossi" non esiste
	E l'ospite "Luca Rossi" esiste
	E ho inserito i valori
         | Attributi | Valori                  |
         | Nome      | Mario Rossi             |
         | Nota      | Da avvertire per tempo! |
	E inserisco la preferenza verso "Luca Rossi", valore 2
	Quando salvo
	Allora l'operazione ha successo
	E esiste l'ospite "Mario Rossi"
	E l'ospite "Mario Rossi" ha una preferenza di valore 2 con "Luca Rossi"
	E l'ospite "Luca Rossi" non ha preferenze verso "Mario Rossi"

Scenario: aggiunta di un ospite con relazioni, nessun altro legame presente. Successo.
	Dato l'ospite "Mario Rossi" non esiste
	E l'ospite "Luca Rossi" esiste
	E ho inserito i valori
         | Attributi | Valori                  |
         | Nome      | Mario Rossi             |
         | Nota      | Da avvertire per tempo! |
	E inserisco una relazione con "Luca Rossi"
	Quando salvo
	Allora l'operazione ha successo
	E esiste l'ospite "Mario Rossi"
	E l'ospite "Mario Rossi" ha una relazione con "Luca Rossi"
	E l'ospite "Luca Rossi" ha una relazione con "Mario Rossi"

Scenario: aggiunta di un ospite con preferenze per ingredienti. Successo.
	Dato l'ospite "Mario Rossi" non esiste
	E l'ingrediente "Radicchio" esiste
	E ho inserito i valori
         | Attributi | Valori                  |
         | Nome      | Mario Rossi             |
         | Nota      | Da avvertire per tempo! |
	E ho inserito una preferenza per l'ingrediente "Radicchio", valore 2
	Quando salvo
	Allora l'operazione ha successo
	E esiste l'ospite "Mario Rossi"
	E l'ospite "Mario Rossi" ha una preferenza per l'ingrediente "Radicchio", valore 2

Scenario: aggiunta di un ospite con preferenza per categorie. Successo.
	Dato l'ospite "Mario Rossi" non esiste
	E la categoria "Verdura" esiste
	E ho inserito i valori
         | Attributi | Valori                  |
         | Nome      | Mario Rossi             |
         | Nota      | Da avvertire per tempo! |
	E ho inserito una preferenza per la categoria "Verdura", valore 2
	Quando salvo
	Allora l'operazione ha successo
	E esiste l'ospite "Mario Rossi"
	E l'ospite "Mario Rossi" ha una preferenza per la categoria "Verdura", valore 2

Scenario: aggiunta di un ospite con preferenza per categoria ed intolleranza. Successo.
	Dato l'ospite "Mario Rossi" non esiste
	E la categoria "Verdura" esiste
	E ho inserito i valori
         | Attributi | Valori                  |
         | Nome      | Mario Rossi             |
         | Nota      | Da avvertire per tempo! |
	E ho inserito una preferenza per la categoria "Verdura", valore 2
	E ho inserito un'intolleranza per la categoria "Verdura"
	Quando salvo
	Allora l'operazione ha successo
	E esiste l'ospite "Mario Rossi"
	E l'ospite "Mario Rossi" ha un'intolleranza per la categoria "Verdura"
	E l'ospite "Mario Rossi" ha una preferenza per la categoria "Verdura", valore 2

Scenario: aggiunta di un ospite con preferenza per ingrediente ed intolleranza. Successo.
	Dato l'ospite "Mario Rossi" non esiste
	E l'ingrediente "Radicchio" esiste
	E ho inserito i valori
         | Attributi | Valori                  |
         | Nome      | Mario Rossi             |
         | Nota      | Da avvertire per tempo! |
	E ho inserito una preferenza per l'ingrediente "Radicchio", valore 2
	E ho inserito un'intolleranza per l'ingrediente "Radicchio"
	Quando salvo
	Allora l'operazione ha successo
	E esiste l'ospite "Mario Rossi"
	E l'ospite "Mario Rossi" ha una preferenza per l'ingrediente "Radicchio", valore 2
	E l'ospite "Mario Rossi" ha un'intolleranza per l'ingrediente "Radicchio"

Scenario: aggiunta di un ospite con preferenza per una categoria ed intolleranza per un ingrediente appartente. Successo.
	Dato l'ospite "Mario Rossi" non esiste
	E l'ingrediente "Radicchio" esiste
	E la categoria "Verdura" esiste
	E l'ingrediente "Radicchio" appartiene alla categoria "Verdura"
	E ho inserito i valori
         | Attributi | Valori                  |
         | Nome      | Mario Rossi             |
         | Nota      | Da avvertire per tempo! |
	E ho inserito una preferenza per la categoria "Verdura", valore 2
	E ho inserito un'intolleranza per l'ingrediente "Radicchio"
	Quando salvo
	Allora l'operazione ha successo
	E esiste l'ospite "Mario Rossi"
	E l'ospite "Mario Rossi" ha una preferenza per la categoria "Verdura", valore 2
	E l'ospite "Mario Rossi" ha un'intolleranza per l'ingrediente "Radicchio"

Scenario: aggiunta di un ospite con intolleranza per categoria e preferenza per un ingrediente appartenente. Successo.
	Dato l'ospite "Mario Rossi" non esiste
	E l'ingrediente "Radicchio" esiste
	E la categoria "Verdura" esiste
	E l'ingrediente "Radicchio" appartiene alla categoria "Verdura"
	E ho inserito i valori
         | Attributi | Valori                  |
         | Nome      | Mario Rossi             |
         | Nota      | Da avvertire per tempo! |
	E ho inserito una preferenza per l'ingrediente "Radicchio", valore 2
	E ho inserito un'intolleranza per la categoria "Verdura"
	Quando salvo
	Allora l'operazione ha successo
	E esiste l'ospite "Mario Rossi"
	E l'ospite "Mario Rossi" ha un'intolleranza per la categoria "Verdura"
	E l'ospite "Mario Rossi" ha una preferenza per l'ingrediente "Radicchio", valore 2